home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / info-service / gopher / Unix / gopher+1.2b4 / gopherd / ext.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-02-11  |  2.8 KB  |  111 lines

  1. /********************************************************************
  2.  * lindner
  3.  * 3.1.1.1
  4.  * 1993/02/11 18:02:51
  5.  * /home/mudhoney/GopherSrc/CVS/gopher+/gopherd/ext.h,v
  6.  * Exp
  7.  *
  8.  * Paul Lindner, University of Minnesota CIS.
  9.  *
  10.  * Copyright 1991, 1992 by the Regents of the University of Minnesota
  11.  * see the file "Copyright" in the distribution for conditions of use.
  12.  *********************************************************************
  13.  * MODULE: ext.h
  14.  * Header file and access methods for filename extension routines
  15.  *********************************************************************
  16.  * Revision History:
  17.  * ext.h,v
  18.  * Revision 3.1.1.1  1993/02/11  18:02:51  lindner
  19.  * Gopher+1.2beta release
  20.  *
  21.  * Revision 1.3  1993/02/09  22:13:57  lindner
  22.  * Added Language attributes
  23.  *
  24.  * Revision 1.2  1993/01/30  23:57:44  lindner
  25.  * Changed fcn prefix to EX and EXA
  26.  *
  27.  * Revision 1.1  1992/12/10  23:13:27  lindner
  28.  * gopher 1.1 release
  29.  *
  30.  *
  31.  *********************************************************************/
  32.  
  33.  
  34. #ifndef EXT_H
  35. #define EXT_H
  36.  
  37. #include "DAarray.h"
  38. #include "STRstring.h"
  39. #include "boolean.h"
  40.  
  41. /*** Map extensions to any of these ***/
  42.  
  43. #define EXT_ERROR -1
  44. #define EXT_VIEW 1
  45. #define EXT_IGNORE 2
  46. #define EXT_ABSTRACT 3
  47. #define EXT_BLOCK 4
  48. #define EXT_BLOCKREF 5
  49.  
  50. /****************************************************
  51.  * A structure for mapping filenames to gopher types, and G+types
  52.  */
  53.  
  54. struct Ext_struct {
  55.      char   Objtype;
  56.      String *View;
  57.      String *ViewLang;
  58.      String *Prefix;
  59.      String *ext;
  60.      int    exttype;
  61.      String *Blockname;
  62. };
  63.  
  64. typedef struct Ext_struct Extobj;
  65.  
  66. /*** Macros and access methods ***/
  67.  
  68. #define EXgetObjtype(a)     ((a)->Objtype)
  69. #define EXsetObjtype(a,b)   ((a)->Objtype=(b))
  70.  
  71. #define EXgetView(a)        STRget((a)->View)
  72. #define EXsetView(a,b)      STRset((a)->View,(b))
  73.  
  74. #define EXgetVLang(a)       STRget((a)->ViewLang)
  75. #define EXsetVLang(a,b)     STRset((a)->ViewLang,(b))
  76.  
  77. #define EXgetPrefix(a)      STRget((a)->Prefix)
  78. #define EXsetPrefix(a,b)    STRset((a)->Prefix,(b))
  79.  
  80. #define EXgetExt(a)         STRget((a)->ext)
  81. #define EXsetExt(a,b)       STRset((a)->ext,(b))
  82.  
  83. #define EXgetExttype(a)     ((a)->exttype)
  84. #define EXsetExttype(a,b)   ((a)->exttype=(b))
  85.  
  86. #define EXgetBlockname(a)   STRget((a)->Blockname)
  87. #define EXsetBlockname(a,b) STRset((a)->Blockname,(b))
  88.  
  89.  
  90. Extobj   *EXnew();
  91. void      EXdestroy();
  92. void      EXcpy();
  93.  
  94.  
  95. /*** Definitions for an Array of extension objects ***/
  96.  
  97. typedef DynArray ExtArray;
  98. #define EXAnew()            (ExtArray *)(DAnew(20,EXnew,NULL,EXdestroy,EXcpy))
  99. #define EXAdestroy(a)       (DAdestroy(a))
  100. #define EXAgetEntry(a,b)    (Extobj *)(DAgetEntry((DynArray*)a,b))
  101. #define EXAadd(a,b)         (DApush(a,b))
  102. #define EXAgetNumEntries(a) (DAgetTop(a))
  103.  
  104. boolean   EXAprocessLine(/*extarr, inputline*/);
  105. boolean   EXAsearch();
  106. boolean   EXAviewSearch();
  107.  
  108.  
  109. #endif /** EXT_H **/
  110.  
  111.